import { fileURLToPath, URL } from 'node:url';
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import vueDevTools from 'vite-plugin-vue-devtools';

// https://vitejs.dev/config/
export default defineConfig(({ mode }) => {
  // 根据当前运行模式设置代理目标地址
  // 确保在开发环境使用 localhost，生产环境使用 backend
  const proxyTarget = mode === 'production' ? 'http://backend:8080' : 'http://localhost:8080';

  return {
    plugins: [
      vue(),
      // vueDevTools(),
    ],
    resolve: {
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url))
      },
    },
    server: {
      // 启用热模块替换（HMR）
      hmr: true,
      // 根据当前环境动态配置代理
      proxy: {
        // 当请求路径以 '/sport' 开头时
        '/sport/': {
          // 将请求转发到后端服务的地址
          target: proxyTarget,
          // 允许跨域
          changeOrigin: true,          
        }
      },
      historyApiFallback: true,
      headers: {
        'Cross-Origin-Opener-Policy': 'same-origin',
        'Cross-Origin-Embedder-Policy': 'require-corp'
      }
    }
  }
});
